network

MVC :

model: 模型 , 管理应用程序的状态(通常存储到数据库中) , 并约束改变状态的行为(或者叫业务规则) Controller : 接受外部用户的操作, 根据操作访问模型获取数据, 并调用“视图” 显示这些数据,控制器是将“模型”和“视图”隔离, 并成为二者之间的联系纽带 View: 负责把数据格式化后呈现给用户

输入 www.google.com 会发生什么:

我的浏览器端:

Google的服务器端:

Google的Web Server(硬件)收到request,将这个request递交给正在80端口监听的HTTP Server(跑在Web Server上的软件,常见的有Nginx,Apache,Unicorn,Gunicorn等),80端口是专为http开放的,端口号用来区分这台主机提供的不同服务,由TCP/IP协议栈规定. HTTP拿到request后转发给Web Application(我们写的程序),常见框架:Django(Python),Ruby on Rails(Ruby),NodeJS(JS),Dropwizard(Java). 我们把写好的html+css+js通过http协议发回给浏览器,浏览器显示并运行这些文件,以此页面为出发点,开始后续的交互.

www.google.com会自动补全为http://www.google.com/,这是个url,他表示网络某个资源(resource)的位置, 一般格式为: protocol :// hostname[:port] / path / ;parameters#fragment 浏览器拿着这个domain找离你最近的DNS,DNS是网络运营商(电信,联通,移动,verizon,comcast)提供的。DNS服务器返回给我一个IP地址. 浏览器向这个IP地址发送一个http/https Request,google的服务器处理这个请求之后返回对应的Response,是一个html文件,浏览器将html文件显示.

  • Type URL in browser: www.google.com(domain) Find the nearest DNS server(Domain Name Service) Send http/https request to the IP address Web Server got the request and deliver it to HTTP server (port 80) HTTP server resend the request to Django, Rails, NodeJS based Web Application Web Application processes the request

results matching ""

    No results matching ""